// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Пин Ап Казино Официальный Сайт – Играть в Онлайн Казино Pin Up – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Пин Ап Казино Официальный Сайт – Играть в Онлайн Казино Pin Up

В наше время интернета и онлайн-игр, казино стали одним из самых популярных способов развлечения для многих людей. И среди них есть казино, которые выделяются своей уникальной атмосферой и инновационными решениями. Одним из таких казино является Pin Up, которое уже стало фаворитом среди игроков.

Pin Up – это онлайн-казино, которое было основано в 2016 году и с тех пор стало одним из самых популярных казино в интернете. Казино Pin Up предлагает игрокам широкий спектр игр, включая слоты, карточные игры, рулетку и другие. Игроки могут играть на официальном сайте казино Pin Up, который доступен на русском языке.

Один из главных преимуществ казино Pin Up – это его уникальная атмосфера. Казино создано в стиле 1940-х годов, что создает уникальную обстановку и атмосферу. Игроки могут чувствовать себя как в старом кинотеатре, а не в обычном казино.

Кроме того, казино Pin Up предлагает игрокам множество бонусов и акций. Игроки могут получать бонусы за регистрацию, за депозит и за участие в турнирах. Казино также предлагает игрокам программу лояльности, которая позволяет им получать бонусы и преимущества за свою лояльность.

В целом, Pin Up – это отличное выбор для игроков, которые ищут уникального и инновационного казино. Казино предлагает игрокам широкий спектр игр, уникальную атмосферу и множество бонусов и акций.

Важно! Перед игрой в казино Pin Up, игроки должны убедиться, что они достигли возраста 18 лет и что игра в казино является легальным в их стране.

Pin Up Casino Official Website: Play Online Casino Pin Up

Pin Up Casino is a popular online casino that offers a wide range of games, including slots, table games, and live dealer games. The casino is licensed by the Curacao Gaming Commission and is available in multiple languages, including Russian.

Games and Software

Game Type Number of Games Slots over 1,000 Table Games over 100 Live Dealer Games over 20

Pin Up Casino uses a variety of software providers, including NetEnt, Microgaming, and Evolution Gaming. This means that players have access to a wide range of games, including popular titles like Book of Dead and Starburst.

Payment Options and Withdrawal

Pin Up Casino offers a range of payment options, including Visa, Mastercard, and Maestro. The casino also accepts a variety of e-wallets, including Skrill and Neteller. Withdrawals are typically processed within 1-3 business days, although this may vary depending on the payment method used.

Customer Support

Pin Up Casino offers 24/7 customer support, which can be accessed through a variety of channels, including live chat, email, and phone. The casino also has a comprehensive FAQ section, which covers a range of topics, including game rules, payment options, and technical issues.

Conclusion

In conclusion, Pin Up Casino is a popular online casino that offers a wide range of games, a variety of payment options, and 24/7 customer support. With its official website and mobile app, players can access the casino from anywhere, at any time. Whether you’re a seasoned gambler or just looking to try your luck, Pin Up Casino is definitely worth considering.

Pin Up Casino Official Website: Play Online Casino Pin Up

Pin Up Casino – это популярное онлайн-казино, которое предлагает игрокам широкий спектр развлекательных игр и возможностей для ставок. В этом разделе мы рассмотрим официальный сайт Pin Up Casino и все, что он может предложить игрокам.

Официальный сайт Pin Up Casino

Преимущества официального сайта Pin Up Casino

Официальный сайт Pin Up Casino имеет несколько преимуществ, которые делают его привлекательным для игроков. В частности, сайт предлагает:

доступ к играм от ведущих разработчиков

безопасную и надежную систему оплаты

круглосуточную поддержку

доступ к информации о правилах и условиях игры

Как играть на официальном сайте Pin Up Casino

Играть на официальном сайте Pin Up Casino – это простое и безопасное дело. Для начала игроки должны зарегистрироваться на сайте, после чего они могут выбрать игру, которая им понравится. Игроки могут также использовать функцию поиска, чтобы найти игру, которая им нужна.

Регистрация и Авторизация в Пин Ап Казино

Для начала играть в пин ап казино , вам нужно зарегистрироваться на официальном сайте. Регистрация проста и займет не более 5 минут.

Шаги регистрации

  • Выберите способ регистрации: через email или через соцсети.
  • Введите свои личные данные: имя, фамилия, email, пароль и подтверждение пароля.
  • Выберите валюту, в которой вы хотите играть.
  • Прочитайте и согласитесь с условиями использования.

После регистрации вы получите доступ к личному кабинету, где можно просматривать историю игр, изменять пароль и получать информацию о своих аккаунтах.

Авторизация

Авторизация в Пин Ап Казино также проста и доступна через несколько способов:

  • через email и пароль;
  • через соцсети;
  • через QR-код.

Вам нужно выбрать способ авторизации, который вам удобен, и ввести соответствующие данные.

Важно: при авторизации убедитесь, что вы вводите корректные данные, чтобы предотвратить доступ к вашему аккаунту третьим лицам.

Если у вас возникнут проблемы с регистрацией или авторизацией, вы можете обратиться к поддержке Пин Ап Казино, которая работает круглосуточно и готовит помочь вам в любое время.

Игры и Бонусы в Пин Ап Казино

Пин Ап Казино – это онлайн казино, которое предлагает игрокам широкий выбор игр и бонусов. В его ассортименте более 3 000 игр от ведущих разработчиков, включая игры от NetEnt, Microgaming, и Pragmatic Play.

Кроме того, Пин Ап Казино предлагает несколько типов бонусов, чтобы помочь игрокам начать играть и насладиться играми. Некоторые из них включают:

Бонусы для новых игроков

100% бонус до 50 000 рублей на первый депозит

50% бонус до 25 000 рублей на второй депозит

25% бонус до 12 500 рублей на третий депозит

Кроме того, Пин Ап Казино предлагает регулярные бонусы и акции для своих игроков, включая:

Дни рождения и праздники

Специальные предложения для лояльных игроков

Турниры и конкурсы

Пин Ап Казино также предлагает программу лояльности, которая позволяет игрокам получать бонусы и преимущества за свою фидельность.

В целом, Пин Ап Казино – это отличное место для игроков, которые ищут широкий выбор игр и бонусов. С его помощью, игроки могут насладиться играми и получать преимущества.

Payment Methods and Withdrawals

Pin Up Casino offers a wide range of payment methods for both deposits and withdrawals, ensuring that players can easily manage their accounts. The available payment options include:

• Visa and Mastercard credit cards

• WebMoney

• Skrill

• Neteller

• Yandex Money

• QIWI

• Bitcoin (for players who prefer cryptocurrency)

Deposit and Withdrawal Limits

Pin Up Casino has set specific limits for both deposits and withdrawals. The minimum deposit amount is 10 EUR/USD, while the maximum deposit amount is 5,000 EUR/USD. The minimum withdrawal amount is 20 EUR/USD, and the maximum withdrawal amount is 5,000 EUR/USD. These limits may vary depending on the player’s account level and the payment method used.

It’s worth noting that Pin Up Casino has a 24-hour withdrawal limit, meaning that players can only withdraw a maximum of 5,000 EUR/USD within a 24-hour period. This is to prevent any potential abuse of the system and to ensure that all withdrawals are processed fairly and efficiently.

Pin Up Casino also offers a withdrawal limit of 10,000 EUR/USD per month, which is applicable to all players. This limit is in place to prevent any potential abuse of the system and to ensure that all withdrawals are processed fairly and efficiently.

Players can check their available balance and transaction history at any time by logging into their account. Pin Up Casino also provides detailed information on all payment methods, including fees, processing times, and limits, to help players make informed decisions about their deposits and withdrawals.

Overall, Pin Up Casino offers a range of payment options and flexible limits to ensure that players can easily manage their accounts and enjoy their gaming experience. With a focus on fairness, security, and transparency, Pin Up Casino provides a safe and enjoyable gaming environment for all players.

Безопасность и Поддержка

Pin Up Casino уделяет особое внимание безопасности своих игроков. Для обеспечения максимальной защиты данных и транзакций, казино использует современные технологии и системы безопасности, такие как SSL-шифрование и двухфакторная аутентификация.

Кроме того, Pin Up Casino имеет строгие правила и процедуры, чтобы предотвратить мошенничество и другие виды злоупотребления. Казино сотрудничает с соответствующими органами и организациями, чтобы обеспечить безопасность и честность игр.

Если у вас возникнут вопросы или проблемы, вы можете обратиться к поддержке Pin Up Casino. Наша команда специалистов готовы помочь вам в любое время, используя различные каналы связи, включая чат, электронную почту и телефон.

Мы также предлагаем нашим игрокам доступ к информации о своих счетах и транзакциях, чтобы обеспечить максимальную прозрачность и контролировать свои финансы.

Безопасность и поддержка – это наша приоритетная задача. Мы хотим, чтобы вы чувствовали себя комфортно и уверенно, играя в Pin Up Casino.

Design and Develop by Ovatheme